Subtyping and Inheritance for Categorical
نویسنده
چکیده
We extend Hagino's categorical datatypes with subtyping and a limited form of inheritance. The view of objects as coalgebras provides the inspiration for subtyping and inheritance for coalgebraic (or coinductive) types. Exploiting the duality between coalgebras and algebras then yields notions of subtyping and inheritance for algebraic (or inductive) types.
منابع مشابه
Inheritance-Based Subtyping
Classes play a dual rôle in mainstream statically-typed object-oriented languages, serving as both object generators and object types. In such languages, inheritance implies subtyping. In contrast, the theoretical language community has viewed this linkage as a mistake and has focused on subtyping relationships determined by the structure of object types, without regard to their underlying impl...
متن کاملExtending Moby with Inheritance-Based Subtyping
There is a great divide between the study of the foundations of object-oriented languages and the practice of mainstream object-oriented languages like JAVA[AG98] and C++[Str97]. One of the most striking examples of this divide is the rôle that class inheritance plays in defining subtyping relations. In most foundational descriptions of OO languages, and in the language designs that these studi...
متن کاملA Behavioral Subtyping, Specification Inheritance, and Modular Reasoning
Verification of a dynamically-dispatched method call, E .m(), seems to depend on E ’s dynamic type. To avoid case analysis and allow incremental development, object-oriented program verification uses supertype abstraction. That is, one reasons about E .m() using m’s specification for E ’s static type. Supertype abstraction is valid when each subtype in the program is a behavioral subtype. This ...
متن کاملIncremental Reasoning for Multiple Inheritance
Object-orientation supports code reuse and incremental programming. Multiple inheritance increases the power of code reuse, but complicates the binding of method calls and thereby program analysis. Behavioral subtyping allows program analysis under an open world assumption; i.e., under the assumption that class hierarchies are extensible. However, method redefinition is severely restricted by b...
متن کاملSeventh International Workshop on Foundations of Object-Oriented Languages
The Seventh International Workshop on Foundations of Object-Oriented Languages (FOOL 7) was held on January 22, 2000, and it was colocated with the ACM Symposium on Principles of Programming Languages in Boston, Massachusetts, USA. Martı́n Abadi chaired the program committee, which received 19 submissions and accepted 6 of them. After the workshop, extended versions of 4 articles were solicited ...
متن کامل